import router from "./index";
import store from "../store/index";
/**
 * 全局路由。
 * 功能：1.判断用户是否登陆
 */
router.beforeEach((to,from,next)=>{
    //如果用户没有登陆处理的逻辑-
    if(store.state.UserToken == null){
        
        //有些页面不需要用户登陆也能够访问，只要判断路由的meta对象中的require是否为true,如果为false表示这个页面不用登陆也可以访问。
        if(to.matched.length > 0 && !to.matched.some(r=>r.meta.require)){
            //没登陆可以访问的页面直接进入。
            next();
        }else{
            //需要登陆访问的页面，所以这里需要跳转到登陆。
            next({path:"/login"})
        }
    }else{ //如果用户已经登陆
        
        //默认的permissionList是null,意思就是说如果没有获取用户的资源的时候，调用FETCH_PERMISSION的vuex的异步方法获取权限，获取之后就可以进入。
       if(store.state.permisser.permissionList == null){
        store.dispatch('FETCH_PERMISSION').then(()=>{
            next({path:to.path})
        })
       }else{//用户存在了资源，也就是菜单都显示出来的情况，只要跳转的不是login那么就直接访问菜单所跳转的路径，如果访问login登陆页面，都登陆了就没必要访问登陆的页面，还是回到刚才的页面。
        if(to.path != '/login'){
            next();
        }else{
            next(from.fullPath);
        }
       }
    }
})